1 ORH comparison of CASAL and Casal2 model configurations

This document compares the results of at least 2 CASAL model configurations (base and at least one sensitivity) and up to 8 Casal2 model configurations (3 BetaDiff, 2 CppAD, and 3 ADOL-C).

The CASAL model sensitivity 1 has a smaller minimisation tolerance value than the CASAL base model (1e-6 vs. 2e-3).

The Casal2 ADOL-C and BetaDiff low tolerance models have a smaller tolerance value than the CASAL base model (1e-6 vs. 2e-3). The Casal2 CppAD models have a tolerance value of 1e-9.

1.1 ORH model characteristics

The main characteristics of the Test Case ORH (orange roughy) CASAL model are:

  • one stock, ages 1 - 80
  • one area
  • years 1979 - 2005, projection years 2006 - 2010
  • one time step
  • two stock categories: immature and mature, with logistic-producing maturity ogive
  • natural mortality (M) of 0.045
  • length-weight relationship (\(W = aL^b\))
  • no stock-recruitment relationship, with \(\sigma_R\) 1.1
  • no ageing error
  • one fishery with logistic selectivity-at-age

Observation data include:

  • empirical length-at-age data for one year
  • one CPUE index
  • fishery catch-at-length

Parameters estimated include:

  • B0
  • the first and last CV for the age-length relationship
  • fishery selectivity parameters a50 and ato95

1.2 ORH model MCMC specifications

The CASAL MCMC options include

  • start 0.2
  • keep 1000
  • length 11000000
  • adaptive_stepsize True
  • adapt_at 10000 20000 30000 40000 50000 100000 200000 4000000
  • df 2
  • burn_in 500
  • proposal_t True

The Casal2 ADOL-C and BetaDiff MCMC options include

  • start 0.2
  • length 11000000
  • keep 1000
  • step_size 0.02
  • adapt_stepsize_at 10000 20000 30000 40000 50000 100000 200000 4000000
  • proposal_distribution t
  • adapt_stepsize_method double_half
  • max_correlation 0.8

The Casal2 CppAD MCMC runs use the BetaDiff covariance matrices since Casal2 does not output the covariance matrix from CppAD minimisation. The Casal2 CppAD MCMC options include

  • start 0.2
  • keep 1000
  • length 12000000 (originally 11M)
  • step_size 0.02
  • adapt_stepsize_at 10000 20000 30000 40000 50000 100000 200000 4000000
  • proposal_distribution t
  • adapt_stepsize_method double_half
  • max_correlation 0.8
  • adapt_covariance_matrix_at 1000000

1.3 R environment

## [1] "Wed Dec  1 17:23:01 2021"
## R version 4.1.2 (2021-11-01)
## Platform: x86_64-pc-linux-gnu (64-bit)
## Running under: Debian GNU/Linux bookworm/sid
## 
## Matrix products: default
## BLAS:   /usr/lib/x86_64-linux-gnu/openblas-pthread/libblas.so.3
## LAPACK: /usr/lib/x86_64-linux-gnu/openblas-pthread/libopenblasp-r0.3.18.so
## 
## locale:
##  [1] LC_CTYPE=en_NZ.UTF-8       LC_NUMERIC=C              
##  [3] LC_TIME=en_NZ.UTF-8        LC_COLLATE=en_NZ.UTF-8    
##  [5] LC_MONETARY=en_NZ.UTF-8    LC_MESSAGES=en_NZ.UTF-8   
##  [7] LC_PAPER=en_NZ.UTF-8       LC_NAME=C                 
##  [9] LC_ADDRESS=C               LC_TELEPHONE=C            
## [11] LC_MEASUREMENT=en_NZ.UTF-8 LC_IDENTIFICATION=C       
## 
## attached base packages:
## [1] stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
##  [1] Casal2_21.11   casal_2.30     devtools_2.4.3 usethis_2.1.3  rlist_0.4.6.2 
##  [6] ggthemes_4.2.4 gridExtra_2.3  coda_0.19-4    ggmcmc_1.5.1.1 ggplot2_3.3.5 
## [11] tidyr_1.1.4    huxtable_5.4.0 dplyr_1.0.7    plyr_1.8.6    
## 
## loaded via a namespace (and not attached):
##  [1] Rcpp_1.0.7         lattice_0.20-45    prettyunits_1.1.1  ps_1.6.0          
##  [5] assertthat_0.2.1   rprojroot_2.0.2    digest_0.6.28      utf8_1.2.2        
##  [9] R6_2.5.1           evaluate_0.14      pillar_1.6.4       rlang_0.4.12      
## [13] rstudioapi_0.13    data.table_1.14.2  callr_3.7.0        jquerylib_0.1.4   
## [17] rmarkdown_2.11     desc_1.4.0         stringr_1.4.0      munsell_0.5.0     
## [21] compiler_4.1.2     xfun_0.28          pkgconfig_2.0.3    pkgbuild_1.2.1    
## [25] htmltools_0.5.2    tidyselect_1.1.1   tibble_3.1.6       reshape_0.8.8     
## [29] fansi_0.5.0        crayon_1.4.2       withr_2.4.3        grid_4.1.2        
## [33] jsonlite_1.7.2     GGally_2.1.2       gtable_0.3.0       lifecycle_1.0.1   
## [37] DBI_1.1.1          magrittr_2.0.1     scales_1.1.1       cli_3.1.0         
## [41] stringi_1.7.6      cachem_1.0.6       remotes_2.4.2      fs_1.5.1          
## [45] testthat_3.1.0     bslib_0.3.1        ellipsis_0.3.2     generics_0.1.1    
## [49] vctrs_0.3.8        RColorBrewer_1.1-2 tools_4.1.2        glue_1.5.1        
## [53] purrr_0.3.4        processx_3.5.2     pkgload_1.2.4      fastmap_1.1.0     
## [57] yaml_2.2.1         colorspace_2.0-2   sessioninfo_1.2.1  memoise_2.0.1     
## [61] knitr_1.36         sass_0.4.0

1.4 CASAL and Casal2 model output

# source('../../R-functions/report_read_in_CASAL_MPD_files.R')
source('../../R-functions/report_read_in_CASAL_MCMC_files.R')
source('../../R-functions/report_read_in_Casal2_MPD_files.R')
source('../../R-functions/report_read_in_Casal2_MCMC_files.R')

1.5 MCMC diagnostics

1.5.1 Diagnostics for the CASAL and Casal2 model MCMC results

For the diagnostics below, the last 10000 samples for each chain are used and subsampled at 10, so that 1000 samples are input into the diagnostic functions.